package com.xx.doublexchat.common.websocket.service;

import com.xx.doublexchat.common.websocket.domain.vo.resp.WSBaseResponse;
import io.netty.channel.Channel;
import me.chanjar.weixin.mp.api.WxMpService;

public interface WebSocketService {
    void connect(Channel channel);

    void handleLoginReq(Channel channel, WxMpService wxMpService);

    void remove(Channel channel);

    void scanLoginSuccess(Integer sceneId, Long id);

    void waitAuthorize(Integer sceneId);

    /**
     * 认证
     * @param channel
     * @param token
     */
    void authorize(Channel channel, String token);

    /**
     * 发送消息给所有用户
     * @param msg
     */
    void sendMsgToAll(WSBaseResponse<?> msg);

    /**
     * 发送给用户
     * @param wsBaseMsg 消息主题
     * @param uid 需要发送的uid
     */
    void sendToUid(WSBaseResponse<?> wsBaseMsg, Long uid);

    /**
     * 发送给所有人
     * @param wsBaseMsg 消息主体
     * @param skipUid 需要跳过的人
     */
    void sendToAllOnline(WSBaseResponse<?> wsBaseMsg, Long skipUid);
}
